package com.zzedu.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zzedu.common.annotation.Excel;
import io.github.eternalstone.annotation.SensitiveBye;
import io.github.eternalstone.enums.SensitiveType;

import java.time.LocalDate;
import java.time.LocalDateTime;

public class ZzStudentVO {

    /**
     * id
     */
    @Excel(name = "学生id")
    private Long id;
    /**
     * 姓名
     */
    @Excel(name = "姓名")
    private String stuName;

    /**
     * 头像
     */
    private Long avatar;

    /**
     * 昵称
     */
    @Excel(name = "昵称")
    private String nickName;

    private String avatarURL;
    /**
     * 性别
     */
    @Excel(name = "性别", dictType = "sys_user_sex")
    private Integer stuSex;

    /**
     * 学号
     */
    @Excel(name = "学号")
    private String stuCode;

    /**
     * 联系电话
     */
    @Excel(name = "联系电话")
    @SensitiveBye(strategy = SensitiveType.MOBILE)
    private String tel;

    /**
     * 生日
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd")
    private LocalDate birthDay;

    /**
     * 对应学校
     */

    private Long schoolId;

    @Excel(name = "对应学校")
    private String schoolName;
    /**
     * 省
     */
    private String province;

    /**
     * 市
     */
    private String city;

    /**
     * 区
     */
    private String district;

    @Excel(name = "省、市、区")
    private String provinceAndCityAndDistrict;
    /**
     * 详细地址
     */
    @Excel(name = "详细地址")
    private String address;

    /**
     * 状态 0-暂停 1正常
     */
    @Excel(name = "正常", dictType = "common_state")
    private Integer state;


    /**
     * 班级
     */

    private String classInfo;


    /**
     * 老师
     */

    private String teacherName;
    /**
     * 有效期开始
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "会员开始日期", dateFormat = "yyyy-MM-dd")
    private LocalDateTime validFrom;


    /**
     * 有效期结束
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "会员到期日期", dateFormat = "yyyy-MM-dd")
    private LocalDateTime validTo;

    /**
     * 会员类型
     */
    @Excel(name = "会员类型", dictType = "stu_member_type")
    private Integer memberType;

    /**
     * 年龄
     */
    private Integer age;

    /**
     * 班级名称
     */
    @Excel(name = "班级")
    private String clzzNames;

    /**
     * 老师名称
     */
    @Excel(name = "带班老师")
    private String teacherNames;

    /**
     * 学习时长
     */
    @Excel(name = "学习时长")
    private String studyInfo;

    /**
     * 绘本信息
     */
    @Excel(name = "学习进度")
    private String bookInfo;
    /**
     * 添加时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "添加时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime gmtCreate;
    /**
     * 学生类型
     * 1-正式
     * 2-体验
     */
    private Integer stuType;


    /**
     * 在当前结束日期后续费时间数组
     */
    private String[] validToDate;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getStuName() {
        return stuName;
    }

    public void setStuName(String stuName) {
        this.stuName = stuName;
    }

    public Long getAvatar() {
        return avatar;
    }

    public void setAvatar(Long avatar) {
        this.avatar = avatar;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public String getAvatarURL() {
        return avatarURL;
    }

    public void setAvatarURL(String avatarURL) {
        this.avatarURL = avatarURL;
    }

    public Integer getStuSex() {
        return stuSex;
    }

    public void setStuSex(Integer stuSex) {
        this.stuSex = stuSex;
    }

    public String getStuCode() {
        return stuCode;
    }

    public void setStuCode(String stuCode) {
        this.stuCode = stuCode;
    }

    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }

    public LocalDate getBirthDay() {
        return birthDay;
    }

    public void setBirthDay(LocalDate birthDay) {
        this.birthDay = birthDay;
    }

    public Long getSchoolId() {
        return schoolId;
    }

    public void setSchoolId(Long schoolId) {
        this.schoolId = schoolId;
    }

    public String getSchoolName() {
        return schoolName;
    }

    public void setSchoolName(String schoolName) {
        this.schoolName = schoolName;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getDistrict() {
        return district;
    }

    public void setDistrict(String district) {
        this.district = district;
    }

    public String getProvinceAndCityAndDistrict() {
        return provinceAndCityAndDistrict;
    }

    public void setProvinceAndCityAndDistrict(String provinceAndCityAndDistrict) {
        this.provinceAndCityAndDistrict = provinceAndCityAndDistrict;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }

    public LocalDateTime getGmtCreate() {
        return gmtCreate;
    }

    public void setGmtCreate(LocalDateTime gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    public String getClassInfo() {
        return classInfo;
    }

    public void setClassInfo(String classInfo) {
        this.classInfo = classInfo;
    }

    public String getTeacherName() {
        return teacherName;
    }

    public void setTeacherName(String teacherName) {
        this.teacherName = teacherName;
    }

    public LocalDateTime getValidFrom() {
        return validFrom;
    }

    public void setValidFrom(LocalDateTime validFrom) {
        this.validFrom = validFrom;
    }

    public LocalDateTime getValidTo() {
        return validTo;
    }

    public void setValidTo(LocalDateTime validTo) {
        this.validTo = validTo;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Integer getMemberType() {
        return memberType;
    }

    public void setMemberType(Integer memberType) {
        this.memberType = memberType;
    }

    public String getClzzNames() {
        return clzzNames;
    }

    public void setClzzNames(String clzzNames) {
        this.clzzNames = clzzNames;
    }

    public String getTeacherNames() {
        return teacherNames;
    }

    public void setTeacherNames(String teacherNames) {
        this.teacherNames = teacherNames;
    }

    public String getStudyInfo() {
        return studyInfo;
    }

    public void setStudyInfo(String studyInfo) {
        this.studyInfo = studyInfo;
    }

    public String getBookInfo() {
        return bookInfo;
    }

    public void setBookInfo(String bookInfo) {
        this.bookInfo = bookInfo;
    }

    public Integer getStuType() {
        return stuType;
    }

    public void setStuType(Integer stuType) {
        this.stuType = stuType;
    }

    public String[] getValidToDate() {
        return validToDate;
    }

    public void setValidToDate(String[] validToDate) {
        this.validToDate = validToDate;
    }
}
